微服务安全架构的优势体现在哪些方面
微服务安全架构的优势体现在以下方面:
可扩展性:通过服务拆分和集成,单个服务在保持通信方式不变的前提下,对其内部功能和技术的改变不会对外部依赖它的服务产生任何影响。结合可扩展性的概念,微服务架构无疑具备这方面的优势。
技术自由度:当系统架构转变成一系列微服务之间的通信和集成时,我们就明白具体实现技术已经不是系统设计和开发的主要约束条件。因为在微服务架构中,各个微服务之间使用的是轻量级的通信机制。所谓轻量级,就是指这些通信机制跟具体实现技术无关,不受限与某一个特定协议或交互媒介。每个微服务高度独立,可以采用适合自身开发团队和技术体系的工具和框架来实现某个微服务,从而为我们提供了宝贵的技术自由度。
组件化方案:微服务架构提供的是一种高内聚、低耦合的组件化方案。组件所能带来的独立性与健壮性微服务都可以具备,但微服务的组件化特征更多表现在对业务的提炼和对边界的思考。使用微服务架构迫使我们使用诸如领域驱动设计的思想去进行策略设计和技术设计,从而为更好地划分业务功能、提取界限上下文和开展系统集成工作提供依据。而这些方法和依据的背后恰恰是我们在架构设计过程中经常会碰到的问题。
可伸缩性:可扩展性与可伸缩性是两个不同的概念,但高扩展性往往能够带来高可伸缩性,因为可以伸缩的前提是对系统有合理的拆分。当我们明确系统中的运行瓶颈,并把引起这些瓶颈的业务功能构建成独立的微服务,就可以应用服务集群等手段有效加强服务运行时的环境和状态。
有效应对遗留系统:微服务是可用于改造遗留系统(Legacy System)的强有力武器。面对遗留系统,一方面该系统的技术体系可能存在设计上的较大缺陷,另一方面则是因为代码量巨大且不容易修改。在代码层次与遗留系统进行直接集成是痛苦且具有挑战性的工作,但是遗留系统以提供接口的方式暴露某些功能入口仍然是一个相对容易实现的过程。一旦获取这些接口,微服务架构就能与之进行通信并完成功能整合。
支持持续交付:持续交付通过简单、可重复的流程来确保软件发布过程的可靠性,通常这是通过持续集成和持续交付管道得以实现。微服务作为独立的可部署单元,非常适合使用持续交付,因为每一个服务都可以在不依赖于其他服务的条件下完成发布和部署。基于微服务架构,持续交付管道可以运行得更快,从而加速问题反馈,这是持续交付的主要目标之一。而持续交付的另一个目标是降低系统风险,微服务小而独立,一旦出现问题很容易进行回滚操作。